"""
创建一个celery对象
1.任务
	1)任务的报名中的文件必须是tasks.py 因为我们的celery可以自动检测任务，自动检测任务的时候，
		只检测tasks.py文件
	2）任务其实就是一个函数
	3)这个任务必须被Celery的实例对象的 task装饰器装饰
2.broker
3.worker
"""

from celery import Celery

# import os
# os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mall.settings")

# 进行Celery允许配置
# 为celery使用django配置文件进行设置
import os
if not os.getenv('DJANGO_SETTINGS_MODULE'):
    os.environ['DJANGO_SETTINGS_MODULE'] = 'mall.settings'

# 以上设置 必须在celery对象创建前

# 创建Celery  对象
# celery 的第一个参数：一般去设置Celery的文件路径
# main 的值 不重复就可以
app = Celery('celery_tasks')

# 设置broker
# config_from_object 填写配置信息的路径
app.config_from_object('celery_tasks.config')

# 让celery自动检测任务
# 第一个参数 是任务列表[]
# 元素是需要添加 任务包的路径
app.autodiscover_tasks(['celery_tasks.sms','celery_tasks.email','celery_tasks.html'])

# worker 其实是一条指令
# celery -A celery 实例对象的文件路径 worker -l info

# 这条指令需要在虚拟环境中执行
# celery -A celery_tasks.main worker -l info

